The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Video data is typically compressed using video encoding before the video data can be stored and/or transmitted. For example, video encoding is used in digital versatile discs (DVDs), digital television broadcasts, and audiovisual and multimedia systems. Video encoding is also used in video-conferencing, Internet-based video streaming, and motion pictures.
H.264 Advanced Video Coding (H.264/AVC) is a recommendation published by the Telecommunication Standardization Sector of the International Telecommunication Union (ITU-T). The H.264/AVC recommendation specifies syntax for compressed video data. Additionally, the H.264/AVC recommendation specifies a video decoder (decoder) for decoding the syntax. The H.264/AVC recommendation is incorporated herein by reference in its entirety.
Vendors may develop video encoders that comport with the decoder specified by the H.264/AVC recommendation. A video encoder (encoder) typically partitions a frame of video data (e.g., a picture) into units called macroblocks. For each macroblock, the encoder generates a prediction based on previously encoded data. The encoder subtracts the prediction from the macroblock to generate a residual. The residual is transformed into a set of transform coefficients using an integer transform. The transform coefficients are then quantized (i.e., divided by an integer).
Additionally, the encoder generates side information that allows the decoder to decode and reconstruct the video data from the encoded data. The side information includes information about the structure of the compressed video data. Additionally, the side information includes information about encoding processes used to encode the video data. The encoder encodes the quantized transform coefficients and the side information and generates a compressed bitstream. The compressed bitstream may be stored and/or transmitted.